﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PoserLoot.Web.Models
{
    public interface IRepository
    {
        // Category methods
        Category CreateCategory(Category category);
        void DeleteCategory(Category category);
        Category EditCategory(Category category);
        Category GetCategory(Guid categoryId);
        IEnumerable<Category> ListCategories();

        // Entry methods
        Entry CreateEntry(Entry entry);
        void DeleteEntry(Entry entry);
        Entry EditEntry(Entry entry);
        Entry GetEntry(Guid entryId);
        IEnumerable<Entry> ListEntries(Guid? categoryId);
        IEnumerable<Entry> ListEntries(string keyword);

        // File methods
        File CreateFile(File file);
        void DeleteFile(File file);
        File EditFile(File file);
        File GetFile(Guid fileId);
        IEnumerable<File> ListFiles(Guid entryId);

        // Gallery methods
        Gallery CreateGallery(Gallery gallery);
        void DeleteGallery(Gallery gallery);
        Gallery EditGallery(Gallery gallery);
        Gallery GetGallery(Guid galleryId);
        IEnumerable<Gallery> ListGallerys(Guid entryId);

        // Comment methods
        Comment CreateComment(Comment comment);
        void DeleteComment(Comment comment);
        Comment EditComment(Comment comment);
        Comment GetComment(Guid commentId);
        IEnumerable<Comment> ListComments(Guid entryId);
    }
}
